JavaScript 设计模式之设计原则
描述
《UNIX/LINUX设计哲学》
- 小即是美
- 让每个程序只做好一件事
- 快速建立原型
- 舍弃高效率而取可移植性
- 采用村文本来存储数据
- 充分利用软件的杠杆效应(软件复用)
- 使用 shell 脚本来提高杆杆效应和可移植性
- 避免强制性的用户界面
- 让每个程序都称为过滤器
小准则:
- 允许用户定制环境
- 尽量使操作系统内核小而轻量化
- 使用小写字母并尽量简短
- 沉默是金
- 各部分之和大于整体
- 寻求90%的解决方案
S O L I D 五大设计原则
- S 单一职责原则
- 一个程序只做好一件事
- 如果功能过于复杂就拆分开,每个部分保持独立
- O 开放封闭原则
- 对扩展开放,对修改封闭
- 增加需求时,扩展新代码,而非修改已有代码
- 软件设计的终极目标
- L 李氏置换原则
- 子类能覆盖父类
- 父类能出现的地方子类就能出现
- JS 中使用较少(弱类型 & 继承使用较少)
- I 接口独立原则
- 保持接口的单一独立,避免出现“胖接口”
- JS 中没有接口,使用较少
- 类似于单一职责原则,这里更关注接口
- D 依赖导致原则
- 面向接口编程,依赖于抽象而不依赖于具体
- 使用方只关注接口而不关注具体类的实现
- JS 中使用较少(没有接口 & 弱类型)
在 JS 中S O 体现较多,L I D 体现较少,但是要了解用意。
用 Promise 来说明 S O
1 | function loadImg(src) { |
- S 单一职责原则:每个
then
中的逻辑只做好一件事 - O 开放封闭原则:如果新增需求,扩展
then
设计模式
设计模式,设计模式。两者应该分开而论。设计是指导思想,模式是套路、模板。从设计到模式。
设计模式分为3种类型:
- 创建型
- 工厂模式(工厂方法模式,抽象工厂模式,建造者模式)
- 单例模式
- 原型模式
- 组合型
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
- 行为型
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代器模式
- 职责连模式
- 命令模式
- 备忘录模式
- 状态模式
- 访问者模式
- 中介者模式
- 解释器模式